package com.example.temp;

public class Test1oooo {

    public static void main(String[] args) {

    }

    /**
     * 在一个二维数组中（每个一维数组的长度相同），每一行都按照从左到右递增的顺序排序，
     * 每一列都按照从上到下递增的顺序排序。请完成一个函数，输入这样的一个二维数组和一个整数，
     * 判断数组中是否含有该整数。
     * [1,2,8,9]
     * [2,4,9,12]
     * [4,7,10,13]
     * [6,8,11,15]
     *
     *
     * 使用while循环  从右上角开始遍历（也可以从其他三个角）
     * 判断a[行][列] 是否等于target值 是直接返回，否判断是否大于target 如果大于列-- 如果小于行++
     */


    public boolean find(int target, int[][] array) {

        int row = 0;
        int col = array[0].length - 1;
//        每个一维数组的长度相同
        while (row < array.length && col >= 0) {
            if (array[row][col] == target) {
                return true;
            } else if (array[row][col] > target) {
                col--;
            } else {
                row++;
            }
        }

        return false;

    }

    public boolean findTest(int target, int[][] array) {

        /**
         * 从左向右递增 从上往下递增
         * */

        int row = 0;
        int col = array[0].length - 1;
        while (col > 0 && row < array.length) {
            if (target==array[row][col]){
                return true;
            }else if (target>array[row][col]){
                row++;
            }else {
                col--;
            }
        }
        return false;
    }
}
